﻿using System;

namespace Runtime.Services.Battle {

    public enum DFR_BattleEntityState {
        Unknown,
        Idle,
        Move,
        Attack,
        Die,
    }

    public enum DFR_BattleAttackType {
        Unknown,
        Point,
        Radius,
        Prop,
        DOT,
    }

    /// <summary>
    /// 伤害类型
    /// </summary>
    public enum DFR_BattleAttackDamageType {
        /// <summary>
        /// 常规
        /// </summary>
        Normal,
        /// <summary>
        /// 暴击
        /// </summary>
        Critical,
        /// <summary>
        /// 闪避
        /// </summary>
        Dodge,
        /// <summary>
        /// 格档
        /// </summary>
        Block,
    }

    public enum DFR_BattleAttackTargetSelectorMode {
        Unknown,
        Closest,
        Focus,
        Random,
        Custom,
    }

    [Flags]
    public enum DFR_BattleEffectFilterFlag {
        None = 0,
        Unique = 1,
        // 1 << 1;
        // 1 << 2;
    }

    public enum DFR_BattleEffectRangeType {
        None,
        Self,
        Range,
        SpottingRange,
        All,
    }

    public enum DFR_BattleEffectTargetSelectType {
        None,
        Single,
        Multiple,
        All,
    }

    public enum DFR_BattleSkillType {
        None,
        SameTarget,
        Immediate,
        Halo,
        SpottingRange,
        AttackCount,
        KillCount,
        A7,
        A8,
        A9,
        AttachEffect,
        ChangeEffect,
        B2, B3, B4, B5, B6, B7, B8, B9,
    }

    public enum DFR_BattleEffectType {
        None,
        DamageFactor,
        CriticalPowerFactor,
        CriticalFactor,
        AttackFactor,
        AttackSpeedFactor,
        MoveSpeedFactor,
        AttackBossAdditionalFactor,
        SpottingRangeFactor,
        DefenseFactor,
        DodgeFactor,
        Damage,
        CriticalPower,
        Critical,
        Attack,
        AttackSpeed,
        MoveSpeed,
        AttackBossAdditional,
        SpottingRange,
        Defense,
        Dodge,
        DownTime,
        DamageAdditional,
        C3, // 未使用
        DamageHPMaxAdditional,
        C5, // 未使用
        Gold,
        Energy,
        QuestReward,
        CommandChangeCost,
        Gather,
        CommandEmployCost,
        Kill,
        HPFactor,
        MonsterQuality,
        InfluenceAmount,
        GenerateSkillEntity,
        DamageHPAdditional,
        D8,
        CommandSummonCostFactor,
        RefreshCostFactor,
        WaveReward,
        GearFillFactor,
        GearFill,
        HPMaxFactor,
        HP,
        HPMax,
        CommandSummonCost,
        RefreshCost,
        GearAddAttackFactor,
        GearAddAttack,
        F1, F2, F3, F4, F5, F6, F7, F8, F9,

        DamageHPMaxFactor = int.MinValue,
        DamageHPFactor,
    }

    public enum DFR_BattleSkillTriggerTiming {
        None,
        Attack,
        Summon,
        Kill,
        Wave,
        CommandSummon,
        CommandCombine,
        Hit,
        BattleStart,
        CastleUnderattack,
        Quest,
        CommandChange,
        Gather,
        Employ,
        GoldChanged,
        FinishRound,
        Lord,
    }
}
